Conventionally, when display data is produced by a computing device for display on one or more connected display devices, it is stored in memory in frames. A frame is a collection of display data stored in a dedicated area of memory known as a frame buffer, organised such that it can be read and rastered directly onto the display device, normally pixel by pixel on a line-by-line basis, with the data from one complete frame providing the display data of one complete image screen on the display device. The data contained in a frame buffer may be arranged and processed as a number of tiles, where each tile is formed of one or more pixels, or as a number of tile groups, where each tile group is a collection of one or more tiles.
Commonly, there will be multiple frame buffers is use at any one time, arranged such that one frame buffer is being read and displayed while a second frame buffer is being written to. This prevents the distortion and visual artefacts known as tearing, caused by the reading process getting ahead of the writing process and beginning to read and display old data.
It is common for there to be considerable repetition both between and within frames. For example, if the user is viewing a web page or document that is predominantly a single colour and typing new text into it, there will be significant repetition of the single colour within the frame and the only difference between the frames will be the new text.
There currently exist methods of comparing consecutive frames in order to find areas of data that do not change from frame to frame. Once the data that has not changed has been determined, that can be used during the data compression process to reduce the amount of data required. Nevertheless, a complete frame buffer needs to be populated in order to provide the data for rastering and displaying on a screen.
The conventional method of preparing whole frame buffers is also inefficient because it requires large areas of memory to be dedicated to the storage of frames, and the memory required increases as the size and resolution of display devices increases and as users connect an increasing number of display devices to the same computing device, which is commonly known as a host. These large areas of memory must then be read from external memory to local memory within the display output chip, even if the data is redundant. Such data transfers are slow and this therefore increases latency and bandwidth and power use between the production of display data and its display.
Aspects of the invention seek to solve or at least mitigate these problems.